Augmented three-dimensional printing

ABSTRACT

A variety of techniques are disclosed for visual and functional augmentation of a three-dimensional printer.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/624,117 filed Sep. 21, 2012, which claims the benefit of U.S. App.No. 61/677,749 filed on Jul. 31, 2012, each of which the entire contentis hereby incorporated by reference.

BACKGROUND

There remains a need for improved three-dimensional printing techniquesusing computer and vision augmentation.

SUMMARY

A variety of techniques are disclosed for visual and functionalaugmentation of a three-dimensional printer.

BRIEF DESCRIPTION OF THE FIGURES

The invention and the following detailed description of certainembodiments thereof may be understood by reference to the followingfigures:

FIG. 1 is a block diagram of a three-dimensional printer.

FIG. 2 shows a three-dimensional printer.

FIG. 3 shows a method for operating a three-dimensional printer.

FIG. 4 shows a method for operating a three-dimensional printer

FIG. 5 shows a method for operating a three-dimensional printer.

DETAILED DESCRIPTION

All documents mentioned herein are hereby incorporated in their entiretyby reference. References to items in the singular should be understoodto include items in the plural, and vice versa, unless explicitly statedotherwise or clear from the text. Grammatical conjunctions are intendedto express any and all disjunctive and conjunctive combinations ofconjoined clauses, sentences, words, and the like, unless otherwisestated or clear from the context. Thus the term “or” should generally beunderstood to mean “and/or” and so forth.

The following description emphasizes three-dimensional printers usingfused deposition modeling or similar techniques where a bead of materialis extruded in a layered series of two dimensional patterns as “roads,”“paths” or the like to form a three-dimensional object from a digitalmodel. It will be understood, however, that numerous additivefabrication techniques are known in the art including without limitationmultijet printing, stereolithography, Digital Light Processor (“DLP”)three-dimensional printing, selective laser sintering, and so forth.Such techniques may benefit from the systems and methods describedbelow, and all such printing technologies are intended to fall withinthe scope of this disclosure, and within the scope of terms such as“printer”, “three-dimensional printer”, “fabrication system”, and soforth, unless a more specific meaning is explicitly provided orotherwise clear from the context.

FIG. 1 is a block diagram of a three-dimensional printer. In general,the printer 100 may include a build platform 102, an extruder 106, anx-y-z positioning assembly 108, and a controller 110 that cooperate tofabricate an object 112 within a working volume 114 of the printer 100.

The build platform 102 may include a surface 116 that is rigid andsubstantially planar. The surface 116 may provide a fixed, dimensionallyand positionally stable platform on which to build the object 112. Thebuild platform 102 may include a thermal element 130 that controls thetemperature of the build platform 102 through one or more active devices132, such as resistive elements that convert electrical current intoheat, Peltier effect devices that can create a heating or coolingaffect, or any other thermoelectric heating and/or cooling devices. Thethermal element 130 may be coupled in a communicating relationship withthe controller 110 in order for the controller 110 to controllablyimpart heat to or remove heat from the surface 116 of the build platform102.

The extruder 106 may include a chamber 122 in an interior thereof toreceive a build material. The build material may, for example, includeacrylonitrile butadiene styrene (“ABS”), high-density polyethylene(“HDPL”), polylactic acid (“PLA”), or any other suitable plastic,thermoplastic, or other material that can usefully be extruded to form athree-dimensional object. The extruder 106 may include an extrusion tip124 or other opening that includes an exit port with a circular, oval,slotted or other cross-sectional profile that extrudes build material ina desired cross-sectional shape.

The extruder 106 may include a heater 126 (also referred to as a heatingelement) to melt thermoplastic or other meltable build materials withinthe chamber 122 for extrusion through an extrusion tip 124 in liquidform. While illustrated in block form, it will be understood that theheater 126 may include, e.g., coils of resistive wire wrapped about theextruder 106, one or more heating blocks with resistive elements to heatthe extruder 106 with applied current, an inductive heater, or any otherarrangement of heating elements suitable for creating heat within thechamber 122 sufficient to melt the build material for extrusion. Theextruder 106 may also or instead include a motor 128 or the like to pushthe build material into the chamber 122 and/or through the extrusion tip124.

In general operation (and by way of example rather than limitation), abuild material such as ABS plastic in filament form may be fed into thechamber 122 from a spool or the like by the motor 128, melted by theheater 126, and extruded from the extrusion tip 124. By controlling arate of the motor 128, the temperature of the heater 126, and/or otherprocess parameters, the build material may be extruded at a controlledvolumetric rate. It will be understood that a variety of techniques mayalso or instead be employed to deliver build material at a controlledvolumetric rate, which may depend upon the type of build material, thevolumetric rate desired, and any other factors. All such techniques thatmight be suitably adapted to delivery of build material for fabricationof a three-dimensional object are intended to fall within the scope ofthis disclosure.

The x-y-z positioning assembly 108 may generally be adapted tothree-dimensionally position the extruder 106 and the extrusion tip 124within the working volume 114. Thus by controlling the volumetric rateof delivery for the build material and the x, y, z position of theextrusion tip 124, the object 112 may be fabricated in three dimensionsby depositing successive layers of material in two-dimensional patternsderived, for example, from cross-sections of a computer model or othercomputerized representation of the object 112. A variety of arrangementsand techniques are known in the art to achieve controlled linearmovement along one or more axes. The x-y-z positioning assembly 108 may,for example, include a number of stepper motors 109 to independentlycontrol a position of the extruder 106 within the working volume alongeach of an x-axis, a y-axis, and a z-axis. More generally, the x-y-zpositioning assembly 108 may include without limitation variouscombinations of stepper motors, encoded DC motors, gears, belts,pulleys, worm gears, threads, and so forth. For example, in one aspectthe build platform 102 may be coupled to one or more threaded rods by athreaded nut so that the threaded rods can be rotated to provide z-axispositioning of the build platform 102 relative to the extruder 124. Thisarrangement may advantageously simplify design and improve accuracy bypermitting an x-y positioning mechanism for the extruder 124 to be fixedrelative to a build volume. Any such arrangement suitable forcontrollably positioning the extruder 106 within the working volume 114may be adapted to use with the printer 100 described herein.

In general, this may include moving the extruder 106, or moving thebuild platform 102, or some combination of these. Thus it will beappreciated that any reference to moving an extruder relative to a buildplatform, working volume, or object, is intended to include movement ofthe extruder or movement of the build platform, or both, unless a morespecific meaning is explicitly provided or otherwise clear from thecontext. Still more generally, while an x, y, z coordinate system servesas a convenient basis for positioning within three dimensions, any othercoordinate system or combination of coordinate systems may also orinstead be employed, such as a positional controller and assembly thatoperates according to cylindrical or spherical coordinates.

The controller 110 may be electrically or otherwise coupled in acommunicating relationship with the build platform 102, the x-y-zpositioning assembly 108, and the other various components of theprinter 100. In general, the controller 110 is operable to control thecomponents of the printer 100, such as the build platform 102, the x-y-zpositioning assembly 108, and any other components of the printer 100described herein to fabricate the object 112 from the build material.The controller 110 may include any combination of software and/orprocessing circuitry suitable for controlling the various components ofthe printer 100 described herein including without limitationmicroprocessors, microcontrollers, application-specific integratedcircuits, programmable gate arrays, and any other digital and/or analogcomponents, as well as combinations of the foregoing, along with inputsand outputs for transceiving control signals, drive signals, powersignals, sensor signals, and so forth. In one aspect, this may includecircuitry directly and physically associated with the printer 100 suchas an on-board processor. In another aspect, this may be a processorassociated with a personal computer or other computing device coupled tothe printer 100, e.g., through a wired or wireless connection.Similarly, various functions described herein may be allocated betweenan on-board processor for the printer 100 and a separate computer. Allsuch computing devices and environments are intended to fall within themeaning of the term “controller” or “processor” as used herein, unless adifferent meaning is explicitly provided or otherwise clear from thecontext.

A variety of additional sensors and other components may be usefullyincorporated into the printer 100 described above. These othercomponents are generically depicted as other hardware 134 in FIG. 1, forwhich the positioning and mechanical/electrical interconnections withother elements of the printer 100 will be readily understood andappreciated by one of ordinary skill in the art. The other hardware 134may include a temperature sensor positioned to sense a temperature ofthe surface of the build platform 102, the extruder 126, or any othersystem components. This may, for example, include a thermistor or thelike embedded within or attached below the surface of the build platform102. This may also or instead include an infrared detector or the likedirected at the surface 116 of the build platform 102.

In another aspect, the other hardware 134 may include a sensor to detecta presence of the object 112 at a predetermined location. This mayinclude an optical detector arranged in a beam-breaking configuration tosense the presence of the object 112 at a predetermined location. Thismay also or instead include an imaging device and image processingcircuitry to capture an image of the working volume and to analyze theimage to evaluate a position of the object 112. This sensor may be usedfor example to ensure that the object 112 is removed from the buildplatform 102 prior to beginning a new build on the working surface 116.Thus the sensor may be used to determine whether an object is presentthat should not be, or to detect when an object is absent. The feedbackfrom this sensor may be used by the controller 110 to issue processinginterrupts or otherwise control operation of the printer 100.

The other hardware 134 may also or instead include a heating element(instead of or in addition to the thermal element 130) to heat theworking volume such as a radiant heater or forced hot air heater tomaintain the object 112 at a fixed, elevated temperature throughout abuild, or the other hardware 134 may include a cooling element to coolthe working volume.

FIG. 2 shows a three-dimensional printer. The printer 200 may include acamera 202 and a processor 204. The printer 200 may be configured foraugmented operation using two-dimensional data acquired from the camera202.

The printer 200 may, for example, be any of the three-dimensionalprinters described above.

The camera 202 may be any digital still camera, video camera, or otherimage sensor(s) positioned to capture images of the printer 200, or theworking volume of the printer 200.

The processor 204, which may be an internal processor of the printer200, an additional processor provided for augmented operation ascontemplated herein, a processor of a desktop computer or the likelocally coupled to the printer 200, a server or other processor coupledto the printer 200 through a data network, or any other processor orprocessing circuitry. In general, the processor 204 may be configured tocontrol operation of the printer 200 to fabricate an object from a buildmaterial. The processor 204 may be further configured to adjust aparameter of the printer 200 based upon an analysis of the object in theimage. It should be appreciated that the processor 204 may include anumber of different processors cooperating to perform the stepsdescribed herein, such as where an internal processor of the printer 200controls operation of the printer 200 while a connected processor of adesktop computer performs image processing used to control printparameters.

A variety of parameters may be usefully adjusted during a fabricationprocess. For example, the parameter may be a temperature of the workingvolume. This temperature may be increased or decreased based upon, e.g.,an analysis of road dimensions (e.g. height and width of line ofdeposited build material), or the temperature may be adjusted accordingto a dimensional stability of a partially fabricated object. Thus, wheresagging or other variations from an intended shape are detected, thetemperature may be decreased. Similarly, where cooling-induced warpingor separation of layers is detected, the temperature may be increased.The working volume temperature may be controlled using a variety oftechniques such as with active heating elements and/or use of heated orcooled air circulating through the working volume.

Another parameter that may be usefully controlled according to thecamera image is the temperature of a build platform in the workingvolume. For example, the camera 202 may capture an image of a raft orother base layer for a fabrication, or a first layer of the fabricatedobject, and may identify defects such as improper spacing betweenadjacent lines of build material or separation of the initial layer fromthe build platform. The temperature of the build platform may in suchcases be heated in order to alleviate cooling-induced warping of thefabricated object at the object-platform interface.

Another parameter that may be usefully controlled according to ananalysis of the camera image is the extrusion temperature of anextruder. By heating or cooling the extruder, the viscosity of a buildmaterial may be adjusted in order to achieve a desired materialdeposition rate and shape, as well as appropriate adhesion to underlyinglayers of build material. Where roads of material deviate from apredetermined cross-sectional shape, or otherwise contain visibledefects, the extrusion temperature of the extruder may be adjusted tocompensate for such defects.

Similarly, the parameter may be an extrusion rate of a build materialfrom the extruder. By controlling a drive motor or other hardware thatforces build material through the extruder, the volumetric rate ofmaterial delivery may be controlled, such as to reduce gaps betweenadjacent lines of build material, or to reduce bulges due to excessbuild material.

In another aspect, the parameter may be a viscosity of build material,which may be controlled, e.g., by controlling the extruder temperatureor any other controllable element that can transfer heat to and frombuild material as it passes through the extruder. It will be understoodthat temperature control is one technique for controlling viscosity, butother techniques are known and may be suitable employed, such as byselectively delivering a solvent or the like into the path of the buildmaterial in order to control thermal characteristics of the buildmaterial.

Another parameter that may be usefully controlled is a movement speed ofthe extruder during an extrusion. By changing the rate of travel of theextruder, other properties of the build (e.g., road thickness, spatialrate of material delivery, and so forth) may be controlled in responseto images captured by the camera 202 and analyzed by the processor 204.

In another aspect, the parameter may be a layer height. By controllingthe z-positioning hardware of the printer 200, the layer height may bedynamically adjusted during a build.

The printer may include a memory 208, such as a local memory or a remotestorage device, that stores a log of data for an object being fabricatedincluding without limitation a value or one or more of the parametersdescribed above, or any other data relating to a print. The memory 208may also or instead store a log of data aggregated from a number offabrications of a particular object, which may include data from theprinter 200 and/or data from a number of other three-dimensionalprinters.

A second processor 210, such as a processor on a server or other remoteprocessing resource, may be configured to analyze the log of data in thememory 208 to identify a feature of the object that is difficult toprint. For example, where a corner, overhang, or the like consistentlyfails, this may be identified by analysis of the log of data,particularly where such failures can be automatically detected basedupon analysis of images from the camera 202. Such failures may be loggedin any suitable manner including quantitatively as data characterizingthe failure (based upon image analysis), metadata (e.g., percentcompletion, build parameters, and so forth) and/or a simple failureflag, which may be accompanied by an image of the failed build. In thismanner, the second processor 210 can identify features that should beavoided in printable models, and/or objects that are generally difficultor impossible to print. The second processor 210 may also or instead beconfigured to analyze the results of variations in one or more of theparameters described above. It will be understood that, while the secondprocessor 210 may be usefully located on a remote processing resourcesuch as a server, the second processor 210 may also be the same as theprocessor 204, with logging and related analysis performed locally bythe printer 200 or a locally coupled computer.

The printer 200 may optionally include a display 212 configured todisplay a view of the working volume. The display 212, which may obtainimages of the working volume from the camera 202 or any other suitableimaging hardware, may be configured, e.g., by the processor 204, tosuperimpose thermal data onto the view of the working volume. This may,for example, include thermistor data or data from other temperaturesensors or similar instrumentation on the printer 200. For example, theprinter 200 may include sensors for measuring a temperature of at leastone of the extruder, the object, the build material, the working volume,an ambient temperature outside the working volume, and a build platformwithin the working volume. These and any similar instrumentation may beused to obtain thermal data correlated to specific or general regionswithin and without the printer 200. Where the camera 202 includes aninfrared camera, the thermal data may also or instead include aninfrared image, or a thermal image derived from such an infrared image.

The display 212 may serve other useful purposes. For example, the viewfrom the camera 202 may be presented in the display. The processor 204may be configured to render an image of a three-dimensional model usedto fabricate an object from the pose of the camera 202. If the camera202 is a fixed camera then the pose may be a predetermined posecorresponding to the camera position and orientation. If the camera 202is a moving camera, the processor 204 may be further programmed todetermine a pose of the camera 202 based upon, e.g., fiducials or known,visually identifiable objects within the working volume such as cornersof a build platform or a tool head, or to determine the pose using datafrom sensors coupled to the camera and/or from any actuators used tomove the camera. The rendered image of the three-dimensional modelrendered from this pose may be superimposed on the view of the workingvolume within the display 212. In this manner, the printer 200 mayprovide a preview of an object based upon a digital three-dimensionalmodel, which preview may be rendered within the display 212 for theprinter, or a user interface of the display, with the as-fabricatedsize, orientation, and so forth. In order to enhance the preview, otherfeatures such as build material color may also be rendered using texturemapping or the like for the rendered image. This may assist a user inselecting build material, scaling, and so forth for an object that is tobe fabricated from a digital model.

In another aspect, the printer 200 may optionally include a sensor 214for capturing three-dimensional data from the object. A variety ofsuitable sensors are known in the art, such as a laser sensor, anacoustical range finding sensor, an x-ray sensor, and a millimeter waveradar system, any of which may be adapted alone or in variouscombinations to capture three-dimensional data. The display 212 may beconfigured to superimpose such three-dimensional data onto the displayof the object within the working volume. In this manner, the processor204 may detect one or more dimensional inaccuracies in the object, suchas by comparison of three-dimensional measurements to a digital modelused to fabricate the object. These may be presented as dimensionalannotations within the display 212, or as color-coded regions (e.g.,yellow for small deviations, red for large deviations, or any othersuitable color scheme) superimposed on the display of the object. Theprocessor 206 may be further configured to show summary data in thedisplay 212 concerning any dimensional inaccuracies detected within theobject.

The sensor 214 may more generally include one or more spatial sensorsconfigured to capture data from the object placed within the workingvolume. The second processor 210 (which may be the processor 204) mayconvert this data into a digital model of the object, and the processor204 may be configured to operate the printer 200 to fabricate ageometrically related object within the working volume based upon thedigital model. In this manner, the printer 200 may be used for directreplication of objects simply by placing an object into the workingvolume, performing a scan to obtain the digital model, removing theobject from the working volume, and then fabricating a replica of theobject based upon the digital model. More generally, any geometricallyrelated shape may be usefully fabricated using similar techniques.

For example, the geometrically related object may be a three-dimensionalcopy of the object, which may be a scaled copy, and/or which may berepeated as many times as desired in a single build subject to spatiallimitations of the working volume and printer 200. In another aspect,the geometrically related object may include material to enclose aportion of the object. In this manner, a container or other enclosurefor the object may be fabricated. In another aspect, the geometricallyrelated object may include a mating surface to the object, e.g., so thatthe fabricated object can be coupled to the original source object. Thismay be particularly useful for fabrication of snap on parts such asaesthetic or functional accessories, or any other objects that might beusefully physically mated to other objects. Similarly, a repair piecefor a broken object may be fabricated with a surface matched to anexposed surface of the broken object, which surface may be glued orotherwise affixed to the broken object to affect a repair.

The processor 204 may obtain the digital model using, e.g., shape frommotion or any other processing technique based upon a sequence oftwo-dimensional images of an object. The multiple images may beobtained, for example, from a plurality of cameras positioned to providecoverage of different surfaces of the object within the working volume.In another aspect, the one or more spatial sensors may include a singlecamera configured to navigate around the working volume, e.g., on atrack or with an articulating arm. Navigating around the working volumemay more generally include circumnavigating the working volume, movingaround and/or within the working volume, and/or changing direction toachieve various poses from a single position. The one or more spatialsensors may also or instead include articulating mirrors that can becontrolled to obtain multiple views of an object from a single camera.

In another aspect, the one or more spatial sensors 214 may includecontrollable lighting that can be used, e.g., to obtain differentshadowed views of an object that can be interpreted to obtainthree-dimensional surface data. The processor 204 (or the secondprocessor 210) may also provide a computer automated design environmentto view and/or modify the digital model so that changes, adjustments,additions, and so forth may be made prior to fabrication.

In another aspect, a tool head 220 of the printer may be usefullysupplemented with a camera 222. The tool head 220 may include any tool,such as an extruder or the like, to fabricate an object in the workingvolume of the printer. In general, the tool head 220 may be spatiallycontrolled by an x-y-z positioning assembly of the printer, and thecamera 222 may be affixed to and moving with the tool head 220. Thecamera 222 may be directed toward the working volume, such as downwardtoward a build platform, and may provide a useful bird's eye view of anobject on the build platform. The processor 204 may be configured toreceive an image from the camera and to provide diagnostic informationfor operation of the three-dimensional printer based upon an analysis ofthe image.

For example, the diagnostic information may include a determination of aposition of the tool head within the working volume. The diagnosticinformation may also or instead include a determination of whether thethree-dimensional printer has effected a color change in build material.The diagnostic information may also or instead include a determinationof whether the three-dimensional printer has effected a change from afirst build material to a second build material. The diagnosticinformation may also or instead include an evaluation of whether a buildmaterial is extruding correctly from the tool head. The diagnosticinformation may also or instead include an evaluation of whether aninfill for the object is being fabricated correctly. In one aspect, thediagnostic information may include the image from the camera, which maybe independently useful as a diagnostic tool.

Where the processor 204 is capable of dynamically modifying toolinstructions, the processor 204 may be configured to dynamicallygenerate a pattern to infill the object based, for example, on anoutline image of the object or previous infilling patterns identified inthe image from the camera.

FIG. 3 shows a method for operating a three-dimensional printer. Inparticular, FIG. 3 shows a technique for using a three-dimensionalscanner with the printer to copy objects placed in the printer, or toautomatically create geometrically related objects.

As shown in step 302, the method 300 may begin with placing an object ina working volume of a three-dimensional printer such as any of theprinters described above.

A shown in step 304, the method may include capturing athree-dimensional image of the object, thereby providing a digitalmodel. This step may be performed for example using any of thethree-dimensional sensors or arrangements of sensors described above, orany other combination of hardware and/or software suitable for capturingthree-dimensional data as contemplated herein. For example, whereshape-from-motion or other optically-based techniques are employed,capturing the three-dimensional image may include capturing a pluralityof images of the object with a plurality of cameras positioned toprovide coverage of different surfaces of the object within the workingvolume and processing the plurality of images to obtain the digitalmodel. The plurality of images may also or instead be captured from aplurality of poses with a single camera configured to navigate aroundthe working volume, such as on a track or articulating arm. Similarly,the plurality of images may be captured from a plurality of poses usinga single camera and one or more articulating mirrors that provideoptical paths to various views of the object. It will further beappreciated that combinations of the foregoing may also be used, such astwo cameras and a number of articulating mirrors.

As shown in step 306, the method 300 may include generating toolinstructions to fabricate a second object geometrically related to theobject with the three-dimensional printer. This digital model for thesecond object may in general include a copy of the object placed in theworking volume, or some derivative object such as a mating part, supportstand, holder, container or the like for the object. For example, thesecond object may be a three-dimensional copy of the object, or thesecond object may be shaped and sized to enclose a portion of theobject, such as to form an enclosure or other container for the object.The second object may similarly include a different object along with amating surface for mechanically coupling to the object. This may forexample include any clips, posts, flanges, or the like suitable formechanical coupling.

The digital model may be generated using any suitable three-dimensionalmodeling software. The resulting digital model for the second object maythen be converted into tool instructions suitable for execution by athree-dimensional printer. The nature of these tool instructions may ofcourse depend upon the specific hardware and general printing technologyemployed by the printer. Techniques for generating such toolinstructions are well known in the art and are not repeated here.

As shown in step 308, the method 300 may include controlling athree-dimensional printer with the tool instructions to fabricate thesecond object based upon the digital model.

FIG. 4 shows a method for operating a three-dimensional printer. Inparticular, the process 400 of FIG. 4 may be used to dynamically modifytool instructions during a three-dimensional fabrication process.

As shown in step 402, the process 400 may begin with the initiation offabrication of an object. As shown in step 404, the process 400 mayinclude capturing data from the object with one or more spatial sensors.As shown in step 406, the process 400 may include converting the datainto a digital model of the object being fabricated, e.g., with a firstprocessor. As shown in step 408, the process 400 may include operatingthe three-dimensional printer according to a number of toolinstructions.

As shown in step 410, the process 400 may include dynamically modifyingone of the tool instructions for the three-dimensional printer accordingto the digital model.

For example, where the object is based upon a second digital model suchas a CAD or STL file, this second digital model may be compared to thedigital model captured by the spatial sensor(s). This comparison mayyield various forms of information. For example, where the dimensions ofthe object are deviating from those expected based on the second digitalmodel, the dynamic modification to the tool instructions may include oneor more changes attempting to return to the intended dimensions such asby shifting, scaling, or otherwise adapting the tool instructions. Thecomparison may also or instead indicate that a build has failed, forexample due to the absence of expected structures, the presence ofunexpected structures, a displacement of the object or a portion of theobject within the working volume, or other spatial anomalies. In suchinstances, the dynamic modification to the tool instructions may includean instruction to abort the build or a pause and request for userinstructions.

In another aspect, the dynamic modification may be based on the digitalmodel itself without regard to a source digital model for the toolinstructions. For example, the digital model may reveal structures,either fabricated or otherwise, within a tool path of the printer, andthe second processor may be configured to modify one of the toolinstructions to avoid a collision of a tool with the digital model, orstated alternatively, with structures within the working volume of theprinter reflected by the digital model. This may, for example, include aforeign body within the working volume. Where a foreign body isdetected, the printer may, for example, automatically pause, avoid theforeign body, and resume the print or restart the print at a differentlocation in the build volume.

Other dynamic modifications to tool instructions may also or instead beemployed. For example, where the printer is fabricating a multi-partprint, e.g., a number of different unconnected (though not necessarilyunrelated) parts within the working volume in a single, concurrentbuild, the second processor may be configured to modify toolinstructions to stop printing one part of the multi-part print when theone part has failed to print. This technique may advantageously preservea number of partially completed, successful objects without wastingbuild material or fabrication time on failed components within thebuild. In another aspect, the second processor may be configured torestart printing of the one part at another location within the workingvolume, subject to capabilities of the printer. This technique may beparticularly useful during early stages of a print, e.g., while thefirst few layers of build material are being deposited and a new objectcan be included without introducing significant z-axis movements to theprinter hardware.

In general, this process 400 may be employed on one of the printersdescribed above, with a first processor capturing and converting datafrom spatial sensors, which may include any sensor or combination ofsensors (including, e.g., cameras) suitable for capturing spatialinformation from an object as a digital model, and with a secondprocessor (which may optionally be the same as the first processor)configured to dynamically modify a tool instruction according to thedigital model, and more generally by comparison to a source model fromwhich the object is fabricated.

FIG. 5 shows a method for operating a three-dimensional printer. Inparticular, the method 500 of FIG. 5 may be used to reacquire apartially completed build within a working volume.

As shown in step 502, the method 500 may start with beginningfabrication of an object in a first location of a working volume with athree-dimensional printer. As shown in step 504, the method 500 mayinclude capturing a digital model of the object with a three-dimensionalscanner, such as a scanner using any of the three-dimensional imagingtechniques described above, or any other suitable techniques. As shownin step 506, the method 500 may include pausing the fabrication of theobject. As shown in step 508, the method 500 may include repositioningthe object to a second location within the working volume of thethree-dimensional printer. The repositioned object may, for example, betranslated, rotated, or some combination of these. As shown in step 510,the method 500 may include capturing a second digital model of theobject with the three-dimensional scanner.

As shown in step 512, the method 500 may include aligning thethree-dimensional printer to the repositioned object. Where the shape ofthe object does not change, the x-y-z change to the printer alignmentmay be determined using a rigid transformation, various techniques forwhich are known in the art. In greater detail, aligning thethree-dimensional printer to the repositioned object may includedetermining a first point on the object where a deposition of a buildmaterial paused, analyzing the second digital model to locate acorresponding point on the repositioned object; and positioning a toolhead of the three-dimensional printer to begin depositing the buildmaterial at the corresponding point.

As noted above, the repositioning may include rotating the object ortranslating the object or some combination of these. In certaincircumstances such as cases of simple translation, it may be possible touse previous tool instructions along with one or more dynamicallymaintained translation parameters. Thus for example, the printer maydynamically update spatial information in tool instructions on aninstruction-by-instruction basis as the instructions are executed ratherthan generating new tool instructions to complete fabrication of theobject. In certain circumstances, however, it may be necessary orappropriate (depending, e.g., on object symmetry, printer capabilities,and so forth) to generate new tool instructions. Thus the method 500 mayinclude generating new tool instructions to continue the fabricationwith the repositioned object, as shown in step 514.

As shown in step 516, the method 500 may include continuing fabricationof the object in the second location. In this manner, a printer using acontinuous printing process may be reattached to an object that isintentionally or accidentally dislodged from a location in a workingvolume.

The methods or processes described above, and steps thereof, may berealized in hardware, software, or any combination of these suitable fora particular application. The hardware may include a general-purposecomputer and/or dedicated computing device. The processes may berealized in one or more microprocessors, microcontrollers, embeddedmicrocontrollers, programmable digital signal processors, or otherprogrammable device, along with internal and/or external memory. Theprocesses may also, or instead, be embodied in an application specificintegrated circuit, a programmable gate array, programmable array logic,or any other device or combination of devices that may be configured toprocess electronic signals. It will further be appreciated that one ormore of the processes may be realized as computer executable codecreated using a structured programming language such as C, an objectoriented programming language such as C++, or any other high-level orlow-level programming language (including assembly languages, hardwaredescription languages, and database programming languages andtechnologies) that may be stored, compiled or interpreted to run on oneof the above devices, as well as heterogeneous combinations ofprocessors, processor architectures, or combinations of differenthardware and software.

Thus, in one aspect, each method described above and combinationsthereof may be embodied in computer executable code that, when executingon one or more computing devices, performs the steps thereof. In anotheraspect, the methods may be embodied in systems that perform the stepsthereof, and may be distributed across devices in a number of ways, orall of the functionality may be integrated into a dedicated, standalonedevice or other hardware. In another aspect, means for performing thesteps associated with the processes described above may include any ofthe hardware and/or software described above. All such permutations andcombinations are intended to fall within the scope of the presentdisclosure.

It should further be appreciated that the methods above are provided byway of example. Absent an explicit indication to the contrary, thedisclosed steps may be modified, supplemented, omitted, and/orre-ordered without departing from the scope of this disclosure.

The method steps of the invention(s) described herein are intended toinclude any suitable method of causing such method steps to beperformed, consistent with the patentability of the following claims,unless a different meaning is expressly provided or otherwise clear fromthe context. So for example performing the step of X includes anysuitable method for causing another party such as a remote user or aremote processing resource (e.g., a server or cloud computer) to performthe step of X. Similarly, performing steps X, Y and Z may include anymethod of directing or controlling any combination of such otherindividuals or resources to perform steps X, Y and Z to obtain thebenefit of such steps.

While particular embodiments of the present invention have been shownand described, it will be apparent to those skilled in the art thatvarious changes and modifications in form and details may be madetherein without departing from the spirit and scope of this disclosureand are intended to form a part of the invention as defined by thefollowing claims, which are to be interpreted in the broadest senseallowable by law.

What is claimed is:
 1. A device comprising: a three-dimensional printerhaving a working volume; one or more spatial sensors configured tocapture data from an object being fabricated within the working volume;a first processor configured to convert the data into a digital model ofthe object; and a second processor configured to operate thethree-dimensional printer to fabricate the object in a fabricationprocess having a number of tool instructions, and to dynamically modifyone of the tool instructions for the three-dimensional printer accordingto the digital model.
 2. The device of claim 1 wherein the firstprocessor and the second processor are the same processor.
 3. The deviceof claim 1 wherein the tool instructions are derived from a seconddigital model, and wherein the second processor is configured todynamically modify one of the tool instructions based upon a comparisonof the digital model to the second digital model.
 4. The device of claim3 wherein the comparison indicates that the fabrication process hasfailed.
 5. The device of claim 4 wherein the second processor isconfigured to abort the fabrication process when the fabrication processhas failed.
 6. The device of claim 1 wherein the second processor isconfigured to modify one of the tool instructions to avoid a collisionof a tool with the digital model.
 7. The device of claim 1 wherein thesecond processor is configured to modify one of the tool instructions toavoid a collision of a tool with a foreign body in the working volume.8. The device of claim 1 wherein the second processor is configured tostop printing one part of a multi-part print when the one part hasfailed to print.
 9. The device of claim 8 wherein the second processoris configured to restart printing of the one part at another locationwithin the working volume.
 10. A three-dimensional printer comprising: atool head to fabricate an object in a working volume; a camera affixedto and moving with the tool head, the camera directed toward the workingvolume; a processor configured to receive an image from the camera andto provide diagnostic information for operation of the three-dimensionalprinter based upon an analysis of the image.
 11. The three-dimensionalprinter of claim 10 wherein the diagnostic information includes adetermination of a position of the tool head within the working volume.12. The three-dimensional printer of claim 10 wherein the diagnosticinformation includes a determination of whether the three-dimensionalprinter has effected a color change in build material.
 13. Thethree-dimensional printer of claim 10 wherein the diagnostic informationincludes a determination of whether the three-dimensional printer haseffected a change from a first build material to a second buildmaterial.
 14. The three-dimensional printer of claim 10 wherein thediagnostic information includes an evaluation of whether a buildmaterial is extruding correctly from the tool head.
 15. Thethree-dimensional printer of claim 10 wherein the diagnostic informationincludes an evaluation of whether an infill for the object is beingfabricated correctly.
 16. The three-dimensional printer of claim 10wherein the diagnostic information includes the image.
 17. Thethree-dimensional printer of claim 14 wherein the processor isconfigured to dynamically generate a pattern for an infill.
 18. A methodcomprising: beginning fabrication of an object in a first location of aworking volume with a three-dimensional printer; capturing a digitalmodel of the object with a three-dimensional scanner; pausingfabrication of the object; repositioning the object to a second locationwithin the working volume of the three-dimensional printer, therebyproviding a repositioned object; capturing a second digital model of theobject with the three-dimensional scanner; aligning thethree-dimensional printer to the repositioned object; and continuingfabrication of the object in the second location.
 19. The method ofclaim 18 wherein aligning the three-dimensional printer to therepositioned object includes: determining a first point on the objectwhere a deposition of a build material paused; analyzing the seconddigital model to locate a corresponding point on the repositionedobject; and positioning a tool head of the three-dimensional printer tobegin depositing the build material at the corresponding point.
 20. Themethod of claim 18 wherein repositioning the object includes at leastone of rotating the object and translating the object.
 21. The method ofclaim 18 further comprising generating new tool instructions to continuethe fabrication.
 22. A device comprising: a three-dimensional printerhaving a working volume; a camera configured to provide a view of theworking volume; a processor configured to render an image of a digitalthree-dimensional model from a pose of the camera; and a user interfacefor the three-dimensional printer having a display configured to displaythe image of the digital model within the view of the working volume,thereby providing a preview of a fabricated object based upon thedigital three-dimensional model.